/* 操控[音量,亮度] */
// [音量,亮度]进度条组件的事件
export default {
	data() {
		return {
			SliderLiangduValue:0,//亮度进度值((每0.1=10))
			SliderYingliangValue:0,//音量进度值(每0.1=10)
			isSliderYingliang:false,//是否允许设置音量(拦截器)
		}
	},
	async mounted(){
		// #ifndef H5
		// 执行【获取屏幕亮度】
		this.getScreenLiangdu()
		// 执行【获取设备音量】
		this.getDeviceVolume()
		// #endif
	},
	created(){
		
	},
	methods:{
		/* 【亮度】完成一次拖动后触发的事件 */ 
		changeSliderLiangdu(e){
			//console.log("【亮度】完成一次拖动后触发的事件")
			let value = e.detail.value/100 //转小数
			// 定义入口参数
			let event = {value}
			// 设置屏幕亮度值
			this.setScreenLiangdu(event)
			// 设置屏幕亮度值[亮度进度条]
			this.SliderLiangduValue = e.detail.value
		},
		/* 【亮度】拖动过程中触发的事件 */
		changingSliderLiangdu(e){
			//console.log("【亮度】拖动过程中触发的事件")
			var value = e.detail.value/100 //转小数
			// 定义入口参数
			let event = {value}
			// 设置屏幕亮度值
			this.setScreenLiangdu(event)
		},
		/* 【音量】完成一次拖动后触发的事件 */
		changeSliderYingliang(e){
			//console.log("【音量】拖动过程中触发的事件")
			var value = e.detail.value/100 //转小数
			// 定义入口参数
			let event = {value}
			// 设置系统音量值
			this.setDeviceVolume(event)
			// 设置系统音量值[音量进度条]
			this.SliderYingliangValue = e.detail.value
			
			this.isSliderYingliang = false
		},
		/* 【音量】拖动过程中触发的事件 */
		async changingSliderYingliang(e){
			//console.log("【音量】拖动过程中触发的事件")
			var value = e.detail.value/100 //转小数
			// 定义入口参数
			let event = {value}
			//console.log(value)
			
			// 这里需要延时更新音量，不然体验不好
			if (this.isSliderYingliang==false){
				var setTimeYingliang = setTimeout(()=>{
					this.isSliderYingliang = true
				},500)
				//console.log("拦截，不允许更新音量")
				var isSetYingliang = {
					index:setTimeYingliang,
					update:this.isSliderYingliang
				}
			}else {
				//console.log("放行，可更新音量")
				//this.isSliderYingliang = false
				//console.log("setTimeYingliang")
				//console.log(setTimeYingliang)
				let IndexUpdate = isSetYingliang.update
				if (IndexUpdate==true) {
					// 定义入口参数
					let event = {value}
					// 设置系统音量值
					this.setDeviceVolume(event)	
				}
			}
			
			// 设置系统音量值到音量进度条
			this.SliderYingliangValue = e.detail.value
			
		},
		
		/* 获取屏幕亮度值 */
		getScreenLiangdu(){
			// #ifndef H5
			uni.getScreenBrightness({
				success: (res) => {
					// 获取当前屏幕亮度值
					var Value = res.value
					if (Value == Number(-1)){
						Value = 0
					}
					// 设置亮度进度条的值
					this.SliderLiangduValue = Math.ceil(Value*100);// 每0.1值等于10进度值
				}
			})
			// #endif
		},
		/* 设置屏幕亮度值 */
		setScreenLiangdu(event){
			//console.log(event.value)
			// #ifndef H5
			uni.setScreenBrightness({
				value:event.value,// 设置亮度值0~1
				success: (res) => {
					//console.log("设置屏幕亮度值 -- 成功")
				}
			})
			// #endif
		},
		/* 设置设备的系统音量，0静音，1最大 */
		async setDeviceVolume(event){
			let Value = event.value
			// #ifdef APP-PLUS
			// 设置当前音量值
			plus.device.setVolume(Value)
			// #endif
			this.isSliderYingliang = false
		},
		/* 获取设备的系统音量 */
		getDeviceVolume(){
			// #ifdef APP-PLUS
			// 获取当前音量值
			let Value = plus.device.getVolume()
			if (Value == Number(-1)){
				Value = 0
			}
			// 设置音量进度条的值
			this.SliderYingliangValue = Math.ceil(Value*100);// 每0.1值等于10进度值
			// #endif
		}
	}
}